home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / TEXTDEF.H < prev    next >
Text File  |  1989-08-17  |  29KB  |  962 lines

  1.  
  2. /* ***************************************************************** */
  3. /*
  4. This is a file for defining strings used by the monitor. If you want
  5. to change the prompt, an error message, etc. this is the place you
  6. will find it.
  7. Note, if a new string is added, then userdef's extern statement must
  8. be changed for the commands to recognize it.
  9. */
  10. /* ***************************************************************** */
  11.  
  12. /*
  13. userdef.h contains the define fields. It will be included at the start
  14. of every command, general, print, getline,main, and assembley routine.
  15. */
  16.  
  17. #include"userdef.h"
  18.  
  19. /*
  20. vardef.h has the variables that are global and live in ram.
  21. */
  22.  
  23. #include"vardef.h"
  24.  
  25. /*
  26. these are the external declerations for use by main. Any command
  27. added/deleted should be added/deleted from here.
  28. */
  29.  
  30. extern dccmd(),bfcmd(),bmcmd(),brcmd(),bscmd(),hecmd(),locmd();
  31. extern tmcmd(),rdcmd(),rmcmd(),mmcmd(),mdcmd(),gocmd();
  32. extern trcmd(),ascmd(),sdcmd();
  33.  
  34. /* ****************ADDITIONS*********************** */
  35.  
  36. EAFIELD seperatorfield[5];
  37. EAFIELD actualfield[5];
  38.  
  39.  
  40. #if(COPROCESSOR==TRUE || DEVICE==68040)
  41.  
  42. COPROCCONTROLREG COPROCCRreg[]=
  43. {
  44.     {"xxxx",        0        }, /* entry 0  */
  45.     {"xxxx",        0    }  /* entry 1  */
  46.  
  47. };
  48.  
  49.  
  50. COPROCCONDITIONALS typepredicate[32]=
  51. {
  52.     {"f"},/* entry 0  */
  53.     {"eq"},/* entry 1  */
  54.     {"ogt"},/* entry 2  */
  55.     {"oge"},/* entry 3  */
  56.     {"olt"},/* entry 4  */
  57.     {"ole"},/* entry 5  */
  58.     {"ogl"},/* entry 6  */
  59.     {"or"},/* entry 7  */
  60.     {"un"},/* entry 8  */
  61.     {"ueq"},/* entry 9  */
  62.     {"ugt"},/* entry 10  */
  63.     {"uge"},/* entry 11  */
  64.     {"ult"},/* entry 12  */
  65.     {"ule"},/* entry 13  */
  66.     {"ne"},/* entry 14  */
  67.     {"t"},/* entry 15  */
  68.     {"sf"},/* entry 16  */
  69.     {"seq"},/* entry 17  */
  70.     {"gt"},/* entry 18  */
  71.     {"ge"},/* entry 19  */
  72.     {"lt"},/* entry 20  */
  73.     {"le"},/* entry 21  */
  74.     {"gl"},/* entry 22  */
  75.     {"gle"},/* entry 23  */
  76.     {"ngle"},/* entry 24  */
  77.     {"ngl"},/* entry 25  */
  78.     {"nle"},/* entry 26  */
  79.     {"nlt"},/* entry 27  */
  80.     {"nge"},/* entry 28  */
  81.     {"ngt"},/* entry 29  */
  82.     {"sne"},/* entry 30  */
  83.     {"st"} /* entry 31  */
  84.  
  85. };
  86.  
  87. MONADICDYADIC MONAorDYA[]=
  88. {
  89. /* HARDWARE SUPPORTED */
  90.     {"fabs",    0x18    }, /* entry 0  */
  91.     {"fadd",    0x22    }, /* entry 1  */
  92.     {"fcmp",    0x38    }, /* entry 2  */
  93.     {"fdiv",    0x20    }, /* entry 3  */
  94.     {"fmul",    0x23    }, /* entry 4  */
  95.     {"fneg",    0x1a    }, /* entry 5  */
  96.     {"fsqrt",    0x04    }, /* entry 6  */
  97.     {"fsub",    0x28    }, /* entry 7  */
  98. /* EMULATOR SUPPORTED */
  99.     {"facos",    0x1c    }, /* entry 8  */
  100.     {"fasin",    0x0c    }, /* entry 9  */
  101.     {"fatan",    0x0a    }, /* entry 10  */
  102.     {"fatanh",    0x0d    }, /* entry 11  */
  103.     {"fcos",    0x1d    }, /* entry 12  */
  104.     {"fcosh",    0x19    }, /* entry 13  */
  105.     {"fetox",    0x10    }, /* entry 14  */
  106.     {"fetoxm1",    0x08    }, /* entry 15  */
  107.     {"fgetexp",    0x1e    }, /* entry 16  */
  108.     {"fgetman",    0x1f    }, /* entry 17  */
  109.     {"fint",    0x01    }, /* entry 18  */
  110.     {"fintrz",    0x03    }, /* entry 19  */
  111.     {"flog10",    0x15    }, /* entry 20  */
  112.     {"flog2",    0x16    }, /* entry 21  */
  113.     {"flogn",    0x14    }, /* entry 22  */
  114.     {"flognp1",    0x06    }, /* entry 23  */
  115.     {"fsin",    0x0e    }, /* entry 24  */
  116.     {"fsinh",    0x02    }, /* entry 25  */
  117.     {"ftan",    0x0f    }, /* entry 26  */
  118.     {"ftanh",    0x09    }, /* entry 27  */
  119.     {"ftentox",    0x12    }, /* entry 28  */
  120.     {"ftwotox",    0x11    }, /* entry 29  */
  121.     {"fmod",    0x21    }, /* entry 30  */
  122.     {"frem",    0x25    }, /* entry 31  */
  123.     {"fscale",    0x26    }, /* entry 32  */
  124.     {"fsgldiv",    0x24    }, /* entry 33  */
  125.     {"fsglmul",    0x27    }  /* entry 34  */
  126. };
  127.  
  128. #endif/* COPROCESSOR==TRUE */
  129.  
  130.  
  131. CONTROLREG CRreg[]=
  132. {
  133.     {"sfc",        0    }, /* entry 0  */
  134.     {"dfc",        1    }, /* entry 1  */
  135.     {"cacr",    2    }, /* entry 2  */
  136.     {"usp",        0x800}, /* entry 3  */
  137.     {"vbr",        0x801}, /* entry 4  */
  138.     {"caar",    0x802}, /* entry 5  */
  139.     {"msp",        0x803}, /* entry 6  */
  140. #if (DEVICE <= 68030)
  141.     {"isp",        0x804} /* entry 7  */
  142. #endif
  143. #if (DEVICE >= 68040)
  144.     {"isp",        0x804}, /* entry 7  */
  145.     {"tc",        0x003}, /* entry 8  */
  146.     {"itt0",    0x004}, /* entry 9  */
  147.     {"itt1",    0x005}, /* entry 10 */
  148.     {"dtt0",    0x006}, /* entry 11 */
  149.     {"dtt1",    0x007}, /* entry 12 */
  150.     {"psr",        0x805}, /* entry 13 */
  151.     {"urp",        0x806}, /* entry 14 */
  152.     {"srp",        0x807}  /* entry 15 */
  153. #endif
  154.  
  155. };
  156.  
  157. SIZETYPES sizefield[]=
  158. {
  159.     {"bwl~~~~"}, /* entry 0  */
  160.     {"b~~~~~~"}, /* entry 1  */
  161.     {"w~~~~~~"}, /* entry 2  */
  162.     {"lbbbb~~"}, /* entry 3  */
  163.     {"wl~~~~~"}, /* entry 4  */
  164.     {"l~~~~~~"}, /* entry 5  */
  165.     {"bbbbb~~"}, /* entry 6  */
  166.     {"~wl~~~~"}, /* entry 7  */
  167.     {"~b~~~~~"}, /* entry 8  */
  168.     {"~w~l~~~"}, /* entry 9  */
  169.     {"~~wl~~~"}, /* entry 10  */
  170.     {"~~~w~~~"}, /* entry 11  */
  171.     {"~l~~~~~"}, /* entry 12  */
  172.     {"wwwww~~"},  /* entry 13  */
  173.     {"~bwl~~~"},   /* entry 14  */
  174. #if (EMULATOR==TRUE || COPROCESSOR==TRUE)
  175.     {"lsxpwdb"},   /* entry 15  */
  176. #else
  177.     {"lsx~wdb"},   /* entry 15  */
  178. #endif
  179.     {"x~~~~~~"},   /* entry 16  */
  180.     {"ls~~w~b"},   /* entry 17  */
  181.     {"~~~p~~~"},   /* entry 18  */
  182.     {"lsx~wdb"}   /* entry 19  */
  183. };
  184.  
  185. TYPES typebitfield[8]=
  186. {
  187.     {"tst"}, /* entry 0  */
  188.     {"extu"},/* entry 1  */
  189.     {"chg"}, /* entry 2  */
  190.     {"exts"},/* entry 3  */
  191.     {"clr"}, /* entry 4  */
  192.     {"ffo"}, /* entry 5  */
  193.     {"set"}, /* entry 6  */
  194.     {"ins"}  /* entry 7  */
  195. };
  196.  
  197. CONDITIONALS typecondition[16]=
  198. {
  199.     {"t"},/* entry 0  */
  200.     {"f"},/* entry 1  */
  201.     {"hi"},/* entry 2  */
  202.     {"ls"},/* entry 3  */
  203.     {"cc"},/* entry 4  */
  204.     {"cs"},/* entry 5  */
  205.     {"ne"},/* entry 6  */
  206.     {"eq"},/* entry 7  */
  207.     {"vc"},/* entry 8  */
  208.     {"vs"},/* entry 9  */
  209.     {"pl"},/* entry 10  */
  210.     {"mi"},/* entry 11  */
  211.     {"ge"},/* entry 12 */
  212.     {"lt"},/* entry 13 */
  213.     {"gt"},/* entry 14 */
  214.     {"le"} /* entry 15 */
  215. };
  216.  
  217. EAALLOWED_TYPE EAtype[]=
  218. {
  219.     {0xbf8},    /* entry 0 */
  220.     {0xbfe},    /* entry 1 */
  221.     {0xbff},    /* entry 2 */
  222.     {0x400},    /* entry 3 */
  223.     {0x800},    /* entry 4 */
  224.     {0x27e},    /* entry 5 */
  225.     {0x2f8},    /* entry 6 */
  226.     {0x37e},    /* entry 7 */
  227.     {0x001},    /* entry 8 */
  228.     {0xff8},    /* entry 9 */
  229.     {0xfff},    /* entry 10 */
  230.     {0x600},    /* entry 11 */
  231.     {0x3f8},    /* entry 12 */
  232.     {0x080},    /* entry 13 */
  233.     {0x278},    /* entry 14 */
  234.     {0xa78},    /* entry 15 */
  235.     {0xa7e},     /* entry 16 */
  236.     {0x1000},    /* entry 17 'C'    ccr        */
  237.     {0x2000},    /* entry 18 'S' status register    */
  238.     {0x040},    /* entry 19 */
  239.     {0x3000},    /* entry 20 'R'    register list    */
  240.     {0x4000},    /* entry 21 'N'    none        */
  241.     {0x015},    /* entry 22 */
  242.     {0x019},    /* entry 23 */
  243.     {0x100},    /* entry 24 */
  244.     {0xc00},    /* entry 25 */
  245.     {0x5000},    /* entry 26 'U' USP        */
  246.     {0x6000},    /* entry 27 'Z'    control register*/
  247.     {0x7000},    /* entry 28 'Y'    D_:D_        */
  248.     {0x8000},    /* entry 29 'W'    A/D_:A/D_    */
  249.     {0x9000},    /* entry 30             */
  250.     {0xa000},    /* entry 31             */
  251.     {0xb000},    /* entry 32 'X'    E{_:_}        */
  252.     {0xc000},    /* entry 33             */
  253.     {0xd000},    /* entry 34 'Q'    melds into EA[SOURCE]        */
  254.     {0xe000},    /* entry 35             */
  255.     {0xf000},    /* entry 36             */
  256.     {0x10000},    /* entry 37             */
  257.     {0x11000},    /* entry 38 'F'    function code    */
  258.     {0x12000},    /* entry 39 'M'    mmu register    */
  259.     {0x13000},    /* entry 40 'FE,E'        */
  260.     {0x020},     /* entry 41 */
  261.     {0x001},     /* entry 42 */
  262.     {0x008},     /* entry 43 */
  263.     {0x300},     /* entry 44 */
  264.     {0x14000},     /* entry 45 'H'    FPm list    */
  265.     {0x15000},     /* entry 46 'I'    FPm        */
  266.     {0x16000},     /* entry 47 'J'    <ea>{Dn} or {#k}*/
  267.     {0x3ff},     /* entry 48 */
  268.     {0x801},     /* entry 49 */
  269.     {0x17000},     /* entry 50 'K'    single FPcr    */
  270.     {0xaff},     /* entry 51 */
  271.     {0x18000},     /* entry 52 'L'    FPIAR only    */
  272.     {0x19000},     /* entry 53 'M'    FPm:FPn        */
  273.     {0x1a000}     /* entry 54 'O' Fpcr list    */
  274. };
  275.  
  276. ACTUALFIELD_T_F Field_option[5];
  277.  
  278. EASPEC EA[2];    /* where SorD will be either TRUE or FALSE and be used to
  279.            determine which is being used ie. EA[SorD]        */
  280.  
  281.  
  282. /* The DEVICE that the target system uses will determine which OPSTRUCTURE
  283.    will be compiled into the monitor */
  284.  
  285. /* NOTE: FOR INSTRUCTION ENTRIES OF THE SAME TYPE THE LONGEST SIZE OPTION
  286.      SHOULD BE ENTERED FIRST!!!!!!!!!!!!!                */
  287.  
  288. OPSTRUCTURE syntax1[]=
  289. /* ******************************************************************** */
  290. /* **************************68000 INSTRUCTIONS************************ */
  291. /* ******************************************************************** */
  292. {
  293.     {"dc",            13,8,21,"xxxxxxxxxxxxxxxx",0,0    },
  294. /* OR Immediate */
  295. /*1*/    {"ori.",        0,8,0,     "00000000xxxxxxxx",7,6    },
  296. /* OR Immediate to CCR */
  297. /*2*/    {"ori.",        1,8,17, "0000000000111100",0,0    },
  298. /* OR Immediate to SR */
  299. /*3*/    {"ori.",        2,8,18, "0000000001111100",0,0    },
  300. /* DYNAMIC  BIT */
  301. /*4*/    {"btst.",        3,4,2,     "0000xxx100xxxxxx",5,3    },
  302. /*5*/    {"bchg.",        3,4,0,     "0000xxx101xxxxxx",5,3    },
  303. /*6*/    {"bclr.",        3,4,0,     "0000xxx110xxxxxx",5,3    },
  304. /*7*/    {"bset.",        3,4,0,     "0000xxx111xxxxxx",5,3    },
  305. /* MOVEP */
  306. /*8*/    {"movep.",        4,19,4, "0000xxx10x001xxx",6,6    },
  307. /*9*/    {"movep.",        4,4,19, "0000xxx11x001xxx",6,6    },
  308. /* AND Immediate to CCR */
  309. /*10*/    {"andi.",        1,8,17, "0000001000111100",0,0    },
  310. /* AND Immediate to SR */
  311. /*11*/    {"andi.",        2,8,18, "0000001001111100",0,0    },
  312. /* AND Immediate */
  313. /*12*/    {"andi.",        0,8,0,     "00000010xxxxxxxx",7,6    },
  314. /* SUB Immediate */
  315. /*13*/    {"subi.",        0,8,0,     "00000100xxxxxxxx",7,6    },
  316. /* ADD Immediate */
  317. /*14*/    {"addi.",        0,8,0,     "00000110xxxxxxxx",7,6    },
  318. /* STATIC BIT */ 
  319. /*15*/    {"btst.",        3,8,1,     "0000100000xxxxxx",5,3    },
  320. /*16*/    {"bchg.",        3,8,0,     "0000100001xxxxxx",5,3    },
  321. /*17*/    {"bclr.",        3,8,0,     "0000100010xxxxxx",5,3    },
  322. /*18*/    {"bset.",        3,8,0,     "0000100011xxxxxx",5,3    },
  323. /* EOR IMMEDIATE to CCR */ 
  324. /*19*/    {"eori.",        1,8,17, "0000101000111100",0,0    },
  325. /* EOR IMMEDIATE to SR*/ 
  326. /*20*/    {"eori.",        2,8,18, "0000101001111100",0,0    },
  327. /* EOR IMMEDIATE */ 
  328. /*21*/    {"eori.",        0,8,0,     "00001010xxxxxxxx",7,6    },
  329. /* CMP IMMEDIATE */ 
  330. /*22*/    {"cmpi.",        0,8,1,     "00001100xxxxxxxx",7,6    },
  331. /* MOVE LONG */ 
  332. /*23*/    {"move.",        5,10,0, "0010xxxxxxxxxxxx",15,15},
  333. /* MOVEA LONG */ 
  334. /*24*/    {"movea.",        5,10,3, "0010xxx001xxxxxx",15,15},
  335. /* MOVE BYTE */ 
  336. /*25*/    {"move.",        1,2,0,     "0001xxxxxxxxxxxx",15,15},
  337. /* MOVEA WORD */ 
  338. /*26*/    {"movea.",        2,10,3, "0011xxx001xxxxxx",15,15},
  339. /* MOVE WORD */ 
  340. /*27*/    {"move.",        2,10,0, "0011xxxxxxxxxxxx",15,15},
  341. /* MOVE from SR */ 
  342. /*28*/    {"move.",        2,18,0, "0100000011xxxxxx",8,8    },
  343. /* NEGX */ 
  344. /*29*/    {"negx.",        0,0,21, "01000000xxxxxxxx",7,6    },
  345. /* CHK 68000 */ 
  346. /*30*/    {"chk.",        2,2,4,     "0100xxx110xxxxxx",6,6    },
  347. /* LEA */ 
  348. /*31*/    {"lea.",        5,5,3,     "0100xxx111xxxxxx",12,12},
  349. /* CLR */ 
  350. /*32*/    {"clr.",        0,0,21, "01000010xxxxxxxx",7,6    },
  351. /* MOVE to CCR */ 
  352. /*33*/    {"move.",        2,2,17, "0100010011xxxxxx",8,8    },
  353. /* NEG */ 
  354. /*34*/    {"neg.",        0,0,21, "01000100xxxxxxxx",7,6    },
  355. /* MOVE to SR */ 
  356. /*35*/    {"move.",        2,2,18, "0100011011xxxxxx",8,8    },
  357. /* NOT */ 
  358. /*36*/    {"not.",        0,0,21, "01000110xxxxxxxx",7,6    },
  359. /* NBCD */ 
  360. /*37*/    {"nbcd.",        1,0,21, "0100100000xxxxxx",6,6    },
  361. /* SWAP */ 
  362. /*38*/    {"swap.",        2,4,21, "0100100001000xxx",3,3    },
  363. /* PEA */ 
  364. /*39*/    {"pea.",        5,5,21, "0100100001xxxxxx",7,7    },
  365. /* MOVEM Registers to EA */ 
  366. /*40*/    {"movem.",        4,20,6, "010010001xxxxxxx",6,6    },
  367. /*ILLEGAL  */ 
  368. /*41*/    {"illegal",        6,21,21, "0100101011111100",0,0    },
  369. /* TAS */ 
  370. /*42*/    {"tas.",        1,0,21, "0100101011xxxxxx",8,8    },
  371. /* TST */ 
  372. /*43*/    {"tst.",        0,1,21, "01001010xxxxxxxx",7,6    },
  373. /* MOVEM EA to Registers */ 
  374. /*44*/    {"movem.",        4,7,20, "010011001xxxxxxx",6,6    },
  375. /* TRAP */ 
  376. /*45*/    {"trap",        6,8,21, "010011100100xxxx",0,0    },
  377. /* LINK WORD */ 
  378. /*46*/    {"link.",        2,3,8, "0100111001010xxx",3,3    },
  379. /* UNLK */ 
  380. /*47*/    {"unlk",        6,3,21, "0100111001011xxx",0,0    },
  381. /* MOVE to USP */ 
  382. /*48*/    {"move.",        5,3,26, "0100111001100xxx",4,4    },
  383. /* MOVE from USP */ 
  384. /*49*/    {"move.",        5,26,3, "0100111001101xxx",4,4    },
  385. /* RESET */ 
  386. /*50*/    {"reset",        6,21,21, "0100111001110000",0,0    },
  387. /* NOP */ 
  388. /*51*/    {"nop",            6,21,21, "0100111001110001",0,0    },
  389. /* STOP */ 
  390. /*52*/    {"stop",        6,8,21, "0100111001110010",0,0    },
  391. /* RTE */ 
  392. /*53*/    {"rte",            6,21,21, "0100111001110011",0,0    },
  393. /* RTS */ 
  394. /*54*/    {"rts",            6,21,21, "0100111001110101",0,0    },
  395. /* TRAPV */ 
  396. /*55*/    {"trapv",        6,21,21, "0100111001110110",0,0    },
  397. /* RTR */ 
  398. /*56*/    {"rtr",            6,21,21, "0100111001110111",0,0    },
  399. /* JSR */ 
  400. /*57*/    {"jsr",            6,5,21, "0100111010xxxxxx",0,0    },
  401. /* JMP */ 
  402. /*58*/    {"jmp",            6,5,21, "0100111011xxxxxx",0,0    },
  403. /* DBcc */ 
  404. /*59*/    {"db~~.",        2,4,23, "0101xxxx11001xxx",4,4    },
  405. /* Scc */ 
  406. /*60*/    {"s~~.",        8,0,21, "0101xxxx11xxxxxx",6,6    },
  407. /* ADDQ */ 
  408. /*61*/    {"addq.",        0,8,0, "0101xxx0xxxxxxxx",7,6    },
  409. /* SUBQ */ 
  410. /*62*/    {"subq.",        0,8,0, "0101xxx1xxxxxxxx",7,6    },
  411. /*63*/    {"subq.",        7,8,3, "0101xxx1xxxxxxxx",7,6    },
  412. /* BRA */ 
  413. /*64*/    {"bra.",        0,23,21, "01100000xxxxxxxx",10,10},
  414. /* BSR */ 
  415. /*65*/    {"bsr.",        0,23,21, "01100001xxxxxxxx",10,10},
  416. /* Bcc */ 
  417. /*66*/    {"b~~.",        0,23,21, "0110xxxxxxxxxxxx",10,10},
  418. /* MOVEQ */ 
  419. /*67*/    {"moveq.",        5,8,4, "0111xxx0xxxxxxxx",8,8    },
  420. /* SBCD */ 
  421. /*68*/    {"sbcd.",        1,4,4, "1000xxx100000xxx",4,4    },
  422. /*69*/    {"sbcd.",        1,13,13, "1000xxx100001xxx",4,4    },
  423. /* DIVU */ 
  424. /*70*/    {"divu.",        2,2,4, "1000xxx011xxxxxx",8,8    },
  425. /* DIVS */ 
  426. /*71*/    {"divs.",        2,2,4, "1000xxx111xxxxxx",12,12    },
  427. /* SUBA */ 
  428. /*72*/    {"suba.",        9,10,3, "1001xxxx11xxxxxx",8,7    },
  429. /* SUBX */ 
  430. /*73*/    {"subx.",        0,4,4, "1001xxx1xx000xxx",7,6    },
  431. /*74*/    {"subx.",        0,13,13, "1001xxx1xx001xxx",7,6    },
  432. /* CMPA */ 
  433. /*75*/    {"cmpa.",        9,10,3, "1011xxxx11xxxxxx",8,7    },
  434. /* CMP */ 
  435. /*76*/    {"cmp.",        0,10,4, "1011xxx0xxxxxxxx",7,6    },
  436. /* EOR */ 
  437. /*77*/    {"eor.",        0,4,0, "1011xxx1xxxxxxxx",7,6    },
  438. /* CMPM */ 
  439. /*78*/    {"cmpm.",        0,24,24, "1011xxx1xx001xxx",7,6    },
  440. /* MULU WORD */ 
  441. /*79*/    {"mulu.",        2,2,4, "1100xxx011xxxxxx",8,8    },
  442. /* MULS WORD */ 
  443. /*80*/    {"muls.",        2,2,4, "1100xxx111xxxxxx",12,12    },
  444. /* ABCD */ 
  445. /*81*/    {"abcd.",        1,4,4, "1100xxx100000xxx",7,6    },
  446. /*82*/    {"abcd.",        1,13,13, "1100xxx100001xxx",7,6    },
  447. /* EXG data registers  */ 
  448. /*83*/    {"exg.",        5,4,4, "1100xxx101000xxx",3,3    },
  449. /* EXG address registers  */ 
  450. /*84*/    {"exg.",        5,3,3, "1100xxx101001xxx",4,4    },
  451. /* EXG data register and address  */ 
  452. /*85*/    {"exg.",        5,4,3, "1100xxx110001xxx",4,4    },
  453. /* AND  */ 
  454. /*86*/    {"and.",        0,2,4, "1100xxx0xxxxxxxx",7,6    },
  455. /*87*/    {"and.",        0,4,12, "1100xxx1xxxxxxxx",7,6    },
  456. /* ADDA */ 
  457. /*88*/    {"adda.",        9,10,3, "1101xxxx11xxxxxx",8,7    },
  458. /* ADDX */ 
  459. /*89*/    {"addx.",        0,4,4, "1101xxx1xx000xxx",7,6    },
  460. /*90*/    {"addx.",        0,13,13, "1101xxx1xx001xxx",7,6    },
  461. /* ADD */ 
  462. /*91*/    {"add.",        0,2,4, "1101xxx0xxxxxxxx",7,6    },
  463. /*92*/    {"add.",        7,3,4, "1101xxx0xxxxxxxx",7,6    },
  464. /*93*/    {"add.",        0,4,12, "1101xxx1xxxxxxxx",7,6    },
  465. /* SHIFT ROTATE memory */ 
  466. /*94*/    {"rol.",        11,12,21, "1110011111xxxxxx",7,6    },
  467. /*95*/    {"ror.",        11,12,21, "1110011011xxxxxx",7,6    },
  468. /* SHIFT ROTATE logical memory */ 
  469. /*96*/    {"roxl.",        11,12,21, "1110010111xxxxxx",7,6    },
  470. /*97*/    {"roxr.",        11,12,21, "1110010011xxxxxx",7,6    },
  471. /* SHIFT ROTATE */ 
  472. /*98*/    {"rol.",        0,8,4, "1110xxx1xx011xxx",7,6    },
  473. /*99*/    {"rol.",        0,4,4, "1110xxx1xx111xxx",7,6    },
  474. /* SHIFT ROTATE */ 
  475. /*100*/    {"ror.",        0,8,4, "1110xxx0xx011xxx",7,6    },
  476. /*101*/    {"ror.",        0,4,4, "1110xxx0xx111xxx",7,6    },
  477. /* SHIFT ROTATE */ 
  478. /*102*/    {"roxl.",        0,8,4, "1110xxx1xx010xxx",7,6    },
  479. /*103*/    {"roxl.",        0,4,4, "1110xxx1xx110xxx",7,6    },
  480. /* SHIFT ROTATE */ 
  481. /*104*/    {"roxr.",        0,8,4, "1110xxx0xx010xxx",7,6    },
  482. /*105*/    {"roxr.",        0,4,4, "1110xxx0xx110xxx",7,6    },
  483. /* EXT */ 
  484. /*106*/    {"ext.",        10,4,21, "01001000xx000xxx",7,6    },
  485. /* ADDQ */ 
  486. /*107*/    {"addq.",        7,8,3, "0101xxx0xxxxxxxx",7,6    },
  487. /* SHIFT ROTATE */ 
  488. /*108*/    {"asl.",        11,12,21, "1110000111xxxxxx",7,6    },
  489. /*109*/    {"asl.",        0,8,4, "1110xxx1xx000xxx",7,6    },
  490. /*110*/    {"asl.",        0,4,4, "1110xxx1xx100xxx",7,6    },
  491. /*111*/    {"asr.",        11,12,21, "1110000011xxxxxx",7,6    },
  492. /*112*/    {"asr.",        0,8,4, "1110xxx0xx000xxx",7,6    },
  493. /*113*/    {"asr.",        0,4,4, "1110xxx0xx100xxx",7,6    },
  494. /* LOGICAL SHIFT ROTATE */ 
  495. /*114*/    {"lsl.",        11,12,21, "1110001111xxxxxx",7,6    },
  496. /*115*/    {"lsl.",        0,8,4, "1110xxx1xx001xxx",7,6    },
  497. /*116*/    {"lsl.",        0,4,4, "1110xxx1xx101xxx",7,6    },
  498. /*117*/    {"lsr.",        11,12,21, "1110001011xxxxxx",7,6    },
  499. /*118*/    {"lsr.",        0,8,4, "1110xxx0xx001xxx",7,6    },
  500. /*119*/    {"lsr.",        0,4,4, "1110xxx0xx101xxx",7,6    },
  501. /* OR  */
  502. /*120*/    {"or.",            0,4,12, "1000xxx1xxxxxxxx",7,6    },
  503. /*121*/    {"or.",            0,2,4, "1000xxx0xxxxxxxx",7,6    },
  504. /* SUB */ 
  505. /*122*/    {"sub.",        0,2,4, "1001xxx0xxxxxxxx",7,6    },
  506. /*123*/    {"sub.",        7,3,4, "1001xxx0xxxxxxxx",7,6    },
  507. #if ((DEVICE==68000) || (DEVICE==68008))
  508. /*124*/    {"sub.",        0,4,12, "1001xxx1xxxxxxxx",7,6    }
  509.  
  510. };
  511. #endif /* end for OPSTRUCTURE */
  512.  
  513. #if DEVICE>=68010
  514. /* SUB */ 
  515. /*124*/    {"sub.",        0,4,12, "1001xxx1xxxxxxxx",7,6    },
  516. /* ******************************************************************** */
  517. /* **************************68010 INSTRUCTIONS************************ */
  518. /* ******************************************************************** */
  519.  
  520. /* MOVES 68010 */ 
  521. /*125*/    {"moves.",        0,25,12, "00001110xxxxxxxx",7,6    },
  522. /* MOVES 68010 */ 
  523. /*126*/    {"moves.",        0,12,25, "00001110xxxxxxxx",7,6    },
  524. /* MOVE from CCR */ 
  525. /*127*/    {"move.",        2,17,0, "0100001011xxxxxx",8,8    },
  526. /* RTD */ 
  527. /*128*/    {"rtd",            6,8,21,    "0100111001110100",7,6    },
  528. /* MOVEC */ 
  529. /*129*/    {"movec.",        5,27,21, "010011100111101x",2,2    },
  530. #endif /* endif for 68010 OPSTRUCTURE */
  531. #if DEVICE==68010
  532. /* BKPT */ 
  533. /*130*/    {"bkpt",        6,8,21, "0100100001001xxx",4,4    }
  534.  
  535. };
  536. #endif /* end for OPSTRUCTURE */
  537.  
  538. #if DEVICE>=68020
  539. /* BKPT */ 
  540. /*130*/    {"bkpt",        6,8,21, "0100100001001xxx",4,4    },
  541.  
  542. /* ******************************************************************** */
  543. /* **************************68020 INSTRUCTIONS************************ */
  544. /* ******************************************************************** */
  545.  
  546. /* CMP2 */ 
  547. /*131*/    {"cmp2.",        0,5,25, "00000xx011xxxxxx",10,9    },
  548. /* CHK2 */ 
  549. /*132*/    {"chk2.",        0,5,25, "00000xx011xxxxxx",10,9    },
  550. /* RTM */ 
  551. /*133*/    {"rtm",            6,25,21, "000001101100xxxx",4,4    },
  552. /* CALLM */ 
  553. /*134*/    {"callm",        6,8,5, "0000011011xxxxxx",8,8    },
  554. /* CAS */ 
  555. /*135*/    {"cas.",        14,37,34, "00001xx011xxxxxx",10,9    },
  556. /* CAS2 */ 
  557. /*136*/    {"cas2.",        10,29,21, "000011x011111100",10,9    },
  558. /* CHK 68020 */ 
  559. /*137*/    {"chk.",        5,2,4, "0100xxx100xxxxxx",6,6    },
  560. /* LINK LONG */ 
  561. /*138*/    {"link.",        5,3,8, "0100100000001xxx",4,4    },
  562. /* EXTB */ 
  563. /*139*/    {"extb.",        5,4,21, "0100100111000xxx",9,9    },
  564. /* MULS LONG */ 
  565. /*140*/    {"muls.",        5,2,4, "0100110000xxxxxx",6,6    },
  566. /*141*/    {"muls.",        5,2,28, "0100110000xxxxxx",6,6    },
  567. /* MULU LONG */ 
  568. /*142*/    {"mulu.",        5,2,4, "0100110000xxxxxx",6,6    },
  569. /*143*/    {"mulu.",        5,2,28, "0100110000xxxxxx",6,6    },
  570. /* DIVU LONG */ 
  571. /*144*/    {"divu.",        12,2,4, "0100110001xxxxxx",6,6    },
  572. /*145*/    {"divu.",        12,2,28, "0100110001xxxxxx",6,6    },
  573. /* DIVUL LONG */ 
  574. /*146*/    {"divul.",        12,2,28, "0100110001xxxxxx",6,6    },
  575. /* DIVS LONG */ 
  576. /*147*/    {"divs.",        12,2,4, "0100110001xxxxxx",6,6    },
  577. /*148*/    {"divs.",        12,2,28, "0100110001xxxxxx",6,6    },
  578. /* DIVSL LONG */ 
  579. /*149*/    {"divsl.",        12,2,28, "0100110001xxxxxx",6,6    },
  580. /* TRAPcc */ 
  581. /*150*/    {"trap~~",        6,21,21, "0101xxxx11111100",0,0    },
  582. /* TRAPcc */ 
  583. /*151*/    {"trap~~.",        10,8,21, "0101xxxx1111101x",1,0    },
  584. /* PACK */ 
  585. /*152*/    {"pack",        6,36,35, "1000xxx101001xxx",0,0    },
  586. /*153*/    {"pack",        6,37,35, "1000xxx101000xxx",0,0    },
  587. /* UNPK */ 
  588. /*154*/    {"unpk",        6,36,35, "1000xxx110001xxx",0,0    },
  589. /*155*/    {"unpk",        6,37,35, "1000xxx110000xxx",0,0    },
  590. /* BITFIELD */ 
  591. /* BFCHG and BFCLR and BFSET*/
  592. /*156*/    {"bf~~~",        6,32,21, "11101xx011xxxxxx",8,8    },
  593. /* BFTST */
  594. /*157*/    {"bf~~~",        6,33,21, "1110100011xxxxxx",8,8    },
  595. /* BFEXTS and BFEXTU and BFFFO */
  596. /*158*/    {"bf~~~",        6,33,4, "11101xx111xxxxxx",8,8    },
  597. #endif /* endif for 68020 OPSTRUCTURE */
  598. #if DEVICE==68020
  599. /* BFINS */
  600. /*159*/    {"bf~~~",        6,4,32, "1110111111xxxxxx",8,8    }
  601.  
  602. };
  603. #endif /* end for OPSTRUCTURE */
  604.  
  605. #if DEVICE>=68030
  606. /* BITFIELD */ 
  607. /* BFINS */
  608. /*159*/    {"bf~~~",        6,4,32, "1110111111xxxxxx",8,8    },
  609.  
  610. /* ******************************************************************** */
  611. /* **************************68030 INSTRUCTIONS************************ */
  612. /* ******************************************************************** */
  613. /* ******************************************************************** */
  614.  
  615. /* PFLUSHA */
  616. /*160*/    {"pflusha",        6,21,21, "1111000000xxxxxx",0,0    },
  617. /* PFLUSH */
  618. /*161*/    {"pflush",        6,30,14, "1111000000xxxxxx",0,0    },
  619. /*162*/    {"pflush",        6,30,21, "1111000000xxxxxx",0,0    },
  620. /* PLOADR */
  621. /*163*/    {"ploadr",        6,38,14, "1111000000xxxxxx",0,0    },
  622. /* PLOADW */
  623. /*164*/    {"ploadw",        6,38,14, "1111000000xxxxxx",0,0    },
  624. /* PMOVE */
  625. /*165*/    {"pmove",        6,39,14, "1111000000xxxxxx",0,0    },
  626. /*166*/    {"pmove",        6,14,39, "1111000000xxxxxx",0,0    },
  627. /* PMOVEFD */
  628. /*167*/    {"pmovefd",        6,14,39, "1111000000xxxxxx",0,0    },
  629. /* PTESTR */
  630. /*168*/    {"ptestr",        6,40,3, "1111000000xxxxxx",0,0    },
  631. /*169*/    {"ptestr",        6,40,21, "1111000000xxxxxx",0,0    },
  632. /* PTESTW */
  633. /*170*/    {"ptestw",        6,40,3, "1111000000xxxxxx",0,0    },
  634.  
  635. #endif /* endif for 68030 OPSTRUCTURE */
  636. #if DEVICE==68030
  637. /*171*/    {"ptestw",        6,40,21, "1111000000xxxxxx",0,0    }
  638.  
  639. };
  640. #endif /* end for OPSTRUCTURE */
  641.  
  642. #if DEVICE>=68040
  643. /* PTESTW */
  644. /*171*/    {"ptestw",        6,40,21, "1111000000xxxxxx",0,0    },
  645. /* PFLUSH */
  646. /*172*/    {"pflush",        6,41,21, "11110101000xxxxx",0,0    },
  647. /* PFLUSHN */
  648. /*173*/    {"pflushn",        6,41,21, "11110101000xxxxx",0,0    },
  649. /* PFLUSHA */
  650. /*174*/    {"pflusha",        6,21,21, "11110101000xxxxx",0,0    },
  651. /* PFLUSHAN */
  652. /*175*/    {"pflushan",        6,21,21, "11110101000xxxxx",0,0    },
  653. /* PTESTR */
  654. /*176*/    {"ptestr",        6,41,21, "1111010101101xxx",0,0    },
  655. /* PTESTW */
  656. /*177*/    {"ptestw",        6,41,21, "1111010101001xxx",0,0    },
  657. /* CINVL */
  658. /*178*/    {"cinvl",        6,42,41, "11110100xx001xxx",0,0    },
  659. /* CINVP */
  660. /*179*/    {"cinvp",        6,42,41, "11110100xx010xxx",0,0    },
  661. /* CINVA */
  662. /*180*/    {"cinva",        6,42,21, "11110100xx011xxx",0,0    },
  663. /* CPUSHL */
  664. /*181*/    {"cpushl",        6,42,41, "11110100xx101xxx",0,0    },
  665. /* CPUSHP */
  666. /*182*/    {"cpushp",        6,42,41, "11110100xx110xxx",0,0    },
  667. /* CPUSHA */
  668. /*183*/    {"cpusha",        6,42,21, "11110100xx111xxx",0,0    },
  669. /* MOVE16 */
  670. /*184*/    {"move16",        6,42,42, "1111011000100xxx",0,0    },
  671. /*185*/    {"move16",        6,43,44, "11110110000xxxxx",0,0    },
  672. /* MOVE16 */
  673. /*186*/    {"move16",        6,44,43, "11110110000xxxxx",0,0    }
  674.  
  675. };
  676. #endif /* endif for 68040 OPSTRUCTURE */
  677.  
  678.  
  679. #if (COPROCESSOR==TRUE || DEVICE==68040)
  680.  
  681. COPROCSTRUCTURE syntax2[]=
  682. /* ******************************************************************** */
  683. /* *********************68881/68882 INSTRUCTIONS*********************** */
  684. /* ******************************************************************** */
  685. {
  686.     {"reserved",    13,21,21},
  687.     {"reserved",    13,21,21},
  688.     {"reserved",    13,21,21},
  689. /* FBcc */
  690. /*3*/    {"fb~~.",        4,23,21    },
  691. /* FDBcc */ 
  692. /*4*/    {"fdb~~",        6,4,23    },
  693. /* FMOVEM Registers to EA */ 
  694. /*5*/    {"fmovem.",        16,45,6    },
  695. /* FMOVEM Dn to EA */ 
  696. /*6*/    {"fmovem.",        16,4,6    },
  697. /* FMOVEM EA to Registers */ 
  698. /*7*/    {"fmovem.",        16,7,45    },
  699. /* FMOVEM EA to Dn */ 
  700. /*8*/    {"fmovem.",        16,7,4    },
  701. /* FNOP */ 
  702. /*9*/    {"fnop",        6,21,21    },
  703. /* FRESTORE */ 
  704. /*10*/    {"frestore",        6,7,21    },
  705. /* FSAVE */ 
  706. /*11*/    {"fsave",        6,6,21    },
  707. /* FScc */ 
  708. /*12*/    {"fs~~.",        8,0,21    },
  709. /* FTRAPcc */ 
  710. /*13*/    {"ftrap~~",        6,21,21    },
  711. /* FTRAPcc */ 
  712. /*14*/    {"ftrap~~.",        10,8,21    },
  713. /* FMOVE <ea>,FPm */ 
  714. /*15*/    {"fmove.",        15,48,46    },
  715. /*16*/    {"fmove.",        17,4,46    },
  716. /* FMOVE FPm,<ea> */ 
  717. /*17*/    {"fmove.",        19,46,48    },
  718. /*18*/    {"fmove.",        17,46,4    },
  719. /* FMOVE FPm,FPn */ 
  720. /*19*/    {"fmove.",        16,46,46    },
  721. /* FMOVE.L <ea>,FPcr */ 
  722. /*20*/    {"fmove.",        5,2,50    },
  723. /*21*/    {"fmove.",        5,3,52    },
  724. /* FMOVE.L FPcr,<ea> */ 
  725. /*22*/    {"fmove.",        5,50,0    },
  726. /*23*/    {"fmove.",        5,52,3    },
  727. /* FMOVEM.L <list>,<ea> */ 
  728. /*24*/    {"fmovem.",        5,50,4    },
  729. /*25*/    {"fmovem.",        5,52,3    },
  730. /*26*/    {"fmovem.",        5,54,12    },
  731. /* FMOVEM.L <ea>,<list> */ 
  732. /*27*/    {"fmovem.",        5,4,50    },
  733. /*28*/    {"fmovem.",        5,3,52    },
  734. /*29*/    {"fmovem.",        5,48,54    },
  735. /* MONADIC or DYADIC SEARCH*/ 
  736. /*30*/    {"f~",            15,48,46},
  737. /*31*/    {"f~",            17,4,46    },
  738. /*32*/    {"f~",            16,46,46},
  739. /*33*/    {"f~",            16,46,21},
  740. /* FTST */ 
  741. /*34*/    {"ftst.",        15,48,21},
  742. /*35*/    {"ftst.",        17,4,21    },
  743. #endif /* endif for 68040 COPROCSTRUCTURE */
  744.  
  745. #if (DEVICE+COPROCESSOR+EMULATOR==68040)
  746. /*36*/    {"ftst.",        16,46,21}
  747. };
  748. #endif /* end for COPROCSTRUCTURE */
  749.  
  750. #if((COPROCESSOR==TRUE) || (EMULATOR==TRUE))
  751. /* FTST */ 
  752. /*36*/    {"ftst.",        16,46,21},
  753. /* FMOVE.P FPm,<ea>{Dn} or FPm,<ea>{#k} */ 
  754. /*37*/    {"fmove.",        18,46,47},
  755. /* FMOVECR  CONSTANT ROM */ 
  756. /*38*/    {"fmovecr.",        16,8,46    },
  757. /* FSINCOS <ea>,FPc:FPs*/ 
  758. /*39*/    {"fsincos.",        17,4,53    },
  759. /*40*/    {"fsincos.",        15,48,53},
  760. /* FSINCOS FPm,FPc:FPs*/ 
  761. /*41*/    {"fsincos.",        16,46,53}
  762. };
  763. #endif /* end for COPROCSTRUCTURE */
  764.  
  765.  
  766. /* ****************ADDITIONS*********************** */
  767.  
  768. /*
  769. these are the predefined symbols for the symbol table. The correspond
  770. to the standard MOTOROLA memory map. To change the startup symbols,
  771. change them here. To add or delete the startup symbols, add or delete
  772. from here and in doinit under main.c .
  773. */
  774.  
  775. char ROMSYMB[] = "/rom";
  776.  
  777. /*
  778. these are the registers known. They are currently set up for a maximum
  779. size of 4 char plus a blank. To add or delete registers known, change
  780. the names here and in doinit under main.c 
  781. */
  782.  
  783. char d_0[] = "D0   ";
  784. char d_1[] = "D1   ";
  785. char d_2[] = "D2   ";
  786. char d_3[] = "D3   ";
  787. char d_4[] = "D4   ";
  788. char d_5[] = "D5   ";
  789. char d_6[] = "D6   ";
  790. char d_7[] = "D7   ";
  791. char a_0[] = "A0   ";
  792. char a_1[] = "A1   ";
  793. char a_2[] = "A2   ";
  794. char a_3[] = "A3   ";
  795. char a_4[] = "A4   ";
  796. char a_5[] = "A5   ";
  797. char a_6[] = "A6   ";
  798. char a_7[] = "A7   ";
  799. char p_c[] = "PC   ";
  800. char s_r[] = "SR   ";
  801. char usp[] = "USP  ";
  802. char msp[] = "MSP  ";
  803. #if(DEVICE<68020)
  804. char ssp[] = "SSP  ";
  805. #else
  806. char isp[] = "ISP  ";
  807. #endif
  808. char sfc[] = "SFC  ";
  809. char dfc[] = "DFC  ";
  810. char vbr[] = "VBR  ";
  811. char cac[] = "CACR ";
  812. char caa[] = "CAAR ";
  813. #if(DEVICE==68030)
  814. char crp[] = "CRP  ";
  815. char srp[] = "SRP  ";
  816. char tc[]  = "TC   ";
  817. char tt_0[] = "TT0  ";
  818. char tt_1[] = "TT1  ";
  819. char mmusr[] = "PSR  ";
  820. #endif
  821. #if(DEVICE==68040)
  822. char urp[] = "URP  ";
  823. char srp[] = "SRP  ";
  824. char tc[]  = "TC   ";
  825. char dtt_0[] = "DTT0 ";
  826. char dtt_1[] = "DTT1 ";
  827. char itt_0[] = "ITT0 ";
  828. char itt_1[] = "ITT1 ";
  829. char mmusr[] = "PSR  ";
  830. #endif
  831.  
  832. /*
  833. these are the miscellanous messages that are needed in different parts
  834. of the program.
  835. */
  836.  
  837. char PROMPT[] = "\nMOTOROLA> ";
  838. char WHICHREGMSG[] = "Which register? ";
  839. char BRKMSG[] = "Break Point:\n";
  840. char SYMBMSG[] = "Known Symbols:\n";
  841. char UNKNOWNMSG[] = "UNKNOWN\t\t\t?";
  842. char HITKEYMSG[] = "Hit any key to continue ...\n";
  843. char MMASHELPMSG[] = "\nDirectives.\nBackup -[<number>], Advance +[<number>], Help '?', Quit 'q' or '.'\n\n";
  844.  
  845. /*
  846. hese are the error messages that are printed out at different
  847. procedures thoughout the program.
  848. */
  849.  
  850. char NOERR[] = "";
  851. char ERR01[] = "ERROR 01: illegal number of arguments\n";
  852. char ERR02[] = "ERROR 02: illegal address syntax\n";
  853. char ERR03[] = "ERROR 03: illegal number syntax\n";
  854. char ERR04[] = "ERROR 04: illegal option\n";
  855. char ERR05[] = "ERROR 05: insufficient room to insert data\n";
  856. char ERR06[] = "ERROR 06: breakpoint table is full\n";
  857. char ERR07[] = "ERROR 07: illegal command call\n";
  858. char ERR08[] = "\nERROR 08: S-record load failed, invalid checksum = ";
  859. char ERR09[] = "ERROR 09: invalid assembly => ";
  860.  
  861. /*
  862. this is a list of the various syntaxes for the commands. It is
  863. accessed under he command, by typing he and then the syntax name.
  864. */
  865.  
  866. struct syntax_element syn[]=
  867. {
  868.     {"range <addr>,<addr>\nrange <addr>:<count>\n"},
  869.     {"addr <number>\n"},
  870.     {"offset <number>\n"},
  871.     {"hex [$]<0-9 || A-F || a-f>[<0-9 || A-F || a-f>]...\n"},
  872.     {"dec &<0-9>[<0-9>]...\n"},
  873.     {"oct @<0-7>[<0-7>]...\n"},
  874.     {"bin %<0-1>[<0-1>]...\n"},
  875.     {"number <hex> || <dec> || <oct> || <bin> || <symbol>\n"},
  876.     {"symbol /<ASCII character>[<ASCII character>]...\n"},
  877.     {"count <number>\n"},
  878.     {"data <number>\n"},
  879.     {"size -b || -h || -w || -l\n"},
  880.     {"exp [<sign>]<number>[<sign><number>]...\n"},
  881.     {"sign + || -\n"},
  882.     {"mask <number>\n"},
  883.     {"text ;<character string>\n"},
  884.     {"name name of command or device i.e. dc,he or host\n"},
  885.     {"unit -c0 || -c1 || -p || -f || -m\n"},
  886.     {"escape a control character that will be used to break the transparent mode\n"},
  887.     {"control '^' | '=' | '.'\n"},
  888.     {LASTCMD}
  889. };
  890.  
  891. /*
  892. these are the ports known by the monitor. To add ports, add them here
  893. */
  894.  
  895. struct port_element p[]=
  896. {
  897.     {"term ",TERMINAL,8},
  898.     {"host ",HOST,8},
  899.     {LASTCMD,0}
  900. };
  901.  
  902. /*
  903. this is the table of commands known, the pointer to the procedure that
  904. handles the command and the syntax for each command. To add or delete
  905. new commands, do so here. Alphabetical order is suggested, but not
  906. required.
  907. */
  908.  
  909. struct table_element f[]=
  910. {
  911.     {"as Assembler/Disassembler\n",ascmd,"as <addr>\n"},
  912.     {"bf Block Fill\n",bfcmd,"bf [<size>] <range> <data>\n"},
  913.     {"bm Block Move\n",bmcmd,"bm [<size>] <range> <addr>\n"},
  914.     {"br Break Point Insertion\n",brcmd,"br [<addr>][<COUNTDEL><count>]\nbr -r [<addr>]\n"},
  915.     {"bs Block Search\n",bscmd,"bs [<size>] <range> (<data>[ <mask>])||(<text>)\n"},
  916.     {"dc Data Conversion\n",dccmd,"dc <exp>\n"},
  917.     {"g  \n",gocmd,"g  [-b] [<addr>]\n"},
  918.     {"go Go Execute User Program\n",gocmd,"go [-b] [<addr>]\n"},
  919.     {"?  \n",hecmd,"? [<name>]||[<syntax>]\n"},
  920.     {"he \n",hecmd,"he [<name>]||[<syntax>]\n"},
  921.     {"help Help\n",hecmd,"help [<name>]||[<syntax>]\n"},
  922.     {"lo Load S-Records\n",locmd,"lo [<offset>] [<text>]\n"},
  923.     {"md Memory Display\n",mdcmd,"md [<size>] <addr>||<range>\n\nMemory Display with Disassembly\nmd -di <addr>\n"},
  924.     {"mm Memory Modify\n",mmcmd,"mm [<size>] <addr> [<control>]\n"},
  925.     {"rd Register Display\n",rdcmd,"rd [<unit>]\n"},
  926.     {"rm Register Modify\n",rmcmd,"rm [<register> [<New Value>]]\n"},
  927.     {"sd Symbol Define\n",sdcmd,"sd [<symbol> <exp>]\n"},
  928.     {"tm Transparent Mode\n",tmcmd,"tm [<escape>]\n"},
  929.     {"tr Trace\n",trcmd,"tr \n"},
  930.     {LASTCMD,0,0}
  931. };
  932.  
  933. /*
  934. this is a table used for determining the m5 field for bcnd and tcnd
  935. instructions. It is used in disasm88 and can be commented out if the
  936. assembler/disassembler is a 68000 family one.
  937. */
  938.  
  939. char *equality[] =
  940. {
  941.     "",
  942.     "\tgt0",
  943.     "\teq0",
  944.     "\tge0",
  945.     "",
  946.     "",
  947.     "",
  948.     "",
  949.     "",
  950.     "",
  951.     "",
  952.     "",
  953.     "\tlt0",
  954.     "\tne0",
  955.     "\tle0"
  956. };
  957.  
  958.  
  959.  
  960.  
  961. /* ***************************************************************** */
  962.